1. Field of the Invention
The present invention relates to a printer driver, an information processing apparatus, and a computer-readable recording medium recording therein the printer driver whose functions are extendable through the addition of a plug-in to a core driver.
2. Description of the Related Art
Because image forming apparatuses, such as printers or multifunction products (MFP), are used in different office environments, they currently need to be customizable to make only necessary functions available. Therefore, printers, for example, allowing functions to be added later in time have been developed. However, when an additional function is added to such a printer, it is necessary to extend functions of a printer driver controlling the printer to make the added function usable.
At the same time, it is sometimes necessary to extend functions of a printer driver itself even if no additional function is added to the printer.
When the functions of the printer driver are to be extended; the manufacturer usually has to create a printer driver with its functions extended, and has to ask their customers to re-install the driver to their computer environments.
Therefore, a technique for adding functions to a printer driver without causing the manufacturer to create the printer driver with its functions extended and without causing the users to re-install the printer driver has been suggested. This is achieved by adding a computer program corresponding only to a function to be extended to the printer driver as a plug-in.
For example, in the technology for extending functions disclosed in Japanese Patent Application Laid-open No. 2004-005608, a device driver has provided with a means for detecting an addition of a plug-in, and the detected plug-in is activated by an event notification sent by the operating system. In this manner, functions can be extended dynamically without requiring the device driver to be re-installed.
However, because a core driver, which is at the core of a driver such as a printer driver, and a plug-in for adding a function are developed at different times, constraints (constraints among various settings, such as limitation in settings that are not permitted to be made simultaneously, for example) required in both of the core driver and the plug-in cannot be freely defined. In other words, a constraint in a plug-in cannot be added to a core driver developed earlier in time, and a constraint in a plug-in developed later in time cannot be added to a plug-in developed earlier in time.